<!-- This HTML file has been created by texi2html 1.28
     from gnu_bulletin.texi on 5 January 1995 -->

<TITLE>Untitled Document - Project GNU Status Report</TITLE>
<P>Go to the <A HREF="gnu_bulletin_16.html">previous</A>, <A HREF="gnu_bulletin_18.html">next</A> section.<P>
<H1><A NAME="SEC19" HREF="gnu_bulletin_toc.html#SEC19">Project GNU Status Report</A></H1>
<P>
<UL>
<LI>
<B>GNU Software Configuration Scheme</B>
<P>
We now have a uniform scheme for configuring GNU software packages in
order to compile them.  This makes it possible to configure all GNU
software in the same way.  In particular, all GNU software will support
the same alternatives for naming machine types and system types.
<P>
The configuration scheme also supports configuring a directory that
contains several GNU packages with one command.  When we have a complete
system, this will make it possible to configure the entire system at
once, eliminating the need to learn how to configure each of the
individual packages that make up the GNU system.
<P>
For tools used in compilation, the configuration scheme also lets you
specify both the host system and the target system, so you can configure
and build cross-compilation tools easily.
<P>
Emacs version 19, GCC version 2 and GDB version 4 support the new
configuration scheme, as do most of our other programs and collections.
<P>
<LI>
<B>The Hurd</B>
<P>
We are developing the GNU Hurd, a set of servers that run on top of
Mach.  Mach is a free message-passing kernel being developed at CMU.
The Hurd servers, working with the GNU C Library, will provide Unix-like
functionality.  Together with Mach they are the last major components
necessary for a complete GNU system.  Currently there are free ports of
the Mach kernel to the 386 PC and the DEC PMAX workstation.  (The PMAX
is one kind of MIPS-based DECstation.)  Other free ports of Mach are in
progress.  Contact CMU for more information if you want to help with one
of those or start your own.  Porting the GNU Hurd and GNU C Library is
easy (easier than porting GNU Emacs, certainly easier than porting GCC)
once a Mach port to a particular kind of hardware exists.
<P>
There are some large projects relating to the Hurd that can be done by
volunteers.  Those who can read and understand the source code with
fewer than two questions, and have the time for a large project, are
invited to make themselves known to Michael Bushnell,
<CODE>mib@gnu.ai.mit.edu</CODE>.
<P>
<LI>
<B>GNU Emacs</B>
<P>
Emacs is the extensible, customizable, self-documenting real-time
display editor.  GNU Emacs 18.59 is the current version.  Emacs 18
maintenance continues for simple bug fixes.
<P>
Version 19 is in beta-release.  See "GNUs Flashes" and "Contents of
the Emacs Tape" for details.
<P>
Thanks to Alan Carroll and the people who worked on Epoch for generating
initial feedback to a multi-windowed Emacs, to Lucid, Inc. for
implementing X Selections, faces, the optimizing byte compiler and the
default menu bar, to Eric Raymond who has evaluated 460 out of 851
possible new Lisp libraries, and to Stephen Gildea for doing the
Emacs 19 reference card.
<P>
Features under consideration for later releases of Emacs include:
<P>
<UL>
<LI>different visibility conditions for regions, and for various
windows showing one buffer
<P>
<LI>incrementally saving the undo history in a file, so that
<CODE>recover-file</CODE> also reinstalls the buffer's undo history
<P>
<LI>support for variable-width fonts
<P>
<LI>support for wide character sets including all the world's
major<BR> languages
<P>
<LI>support for display using an X toolkit
</UL>
<P>
<LI>
<B>GNU Fortran (<CODE>g77</CODE>)</B>
<P>
GNU Fortran is in "private" alpha test (testing by a small group of
experts) and is not yet publicly released.  Until <CODE>g77</CODE> is fully
released to the public, we ask people to use <CODE>f2c</CODE> (a FORTRAN-to-C
translator) with <CODE>gcc</CODE> (the GNU C compiler).  As <CODE>g77</CODE> uses a
lot of these two tools (the <CODE>f2c</CODE> libraries and the <CODE>gcc</CODE> back
end), using them and reporting any problems you find will help speed the
release of <CODE>g77</CODE>.  See "Contents of the Languages Tapes."
<P>
The primary focus of the alpha test is to test the <CODE>g77</CODE> front end,
since that has most of the new code.  The secondary focus of the alpha
test is to test the integration between the front end and the back end.
Currently, this is where most of the bugs seem to be.  The tertiary
focus is the quality of code generated by the GNU back end.
<P>
A mailing list exists for those interested in <CODE>g77</CODE>.  To subscribe,
please ask <CODE>info-gnu-fortran-request@prep.ai.mit.edu</CODE>.  To
contact the author and/or current maintainer of <CODE>g77</CODE>, write to
<CODE>fortran@prep.ai.mit.edu</CODE>.
<P>
<LI>
<B>C Compiler</B>
<P>
GCC supports both ANSI standard and traditional C, as well as the GNU
extensions to C.  Two versions of GCC are being maintained in parallel.
Version 1 is stable, but is still maintained with bug fixes.  For more
information about version 1, see "Contents of the Languages Tape."
<P>
Version 2 of GCC is now reliable.  It also has front ends for the
languages C<TT>++</TT> and Objective C.
<P>
New front ends are being developed, but they are not part of GCC yet.  A
front end for Fortran is in alpha test.  A front end for Ada is being
funded through the Ada 9X standards committee.  Since it is a quite
complex language, we expect completion to take a while.  Volunteers are
also developing front ends for Modula-3, Pascal and COBOL.  For more
information about version 2, see "Contents of the Experimental Tape."
<P>
<LI>
<B>Binutils</B>
<P>
Steve Chamberlain, Per Bothner, and others at Cygnus Support have
rewritten the binary utilities (including the linker).  Version 2 is
based on the same Binary File Descriptor (BFD) library used by GDB.  All
the tools can be run on a host that differs from the target (e.g.
cross-linking is supported).  Furthermore, various forms of COFF and
other object file formats are supported.  A tool can now deal with
object files in multiple formats all at once.  For example, the linker
can read object files using two different formats, and write the output
in a third format.  The linker interprets a superset of the AT&#38;T Linker
Command Language, which allows very general control over where segments
are placed in memory.
<P>
<LI>
<B>GNU C Library</B>
<P>
Roland McGrath continues to work on the GNU C Library.  It now supports
everything required by the ANSI C-1989 and POSIX 1003.1-1990 standards,
most facilities of POSIX 1003.2, and many additional Unix functions (BSD
and System V).  In the Hurd, the C Library will do much of what the
system calls do in Unix.  Mike Haertel has written a fast <CODE>malloc</CODE>
which wastes less memory than the old GNU <CODE>malloc</CODE>.  The GNU
regular-expression functions (<CODE>regex</CODE>) now mostly conform to the
POSIX 1003.2 standard.
<P>
GNU <CODE>stdio</CODE> lets you define new kinds of streams, just by writing a
few C functions.  The <CODE>fmemopen</CODE> function uses this to open a
stream on a string, which can grow as necessary.  You can define your
own <CODE>printf</CODE> formats to use a C function you have written.  For
example, you can safely use format strings from user input to implement
a <CODE>printf</CODE>-like function for another programming language.
Extended <CODE>getopt</CODE> functions are already used to parse options,
including long options, in many GNU utilities.<P>
Version 1.06 of the GNU C Library has just been released.  It includes
the relocating allocator used in Emacs 19, as well as new ports to Dynix
on Sequent Symmetry, SCO and SVR4 on i386, and Solaris 2 on SPARC.  This
is the first release to include the <CITE>GNU C Library Reference
Manual</CITE>.  For more information, see "Contents of Experimental Tape."
<P>
<LI>
<B>Rx</B>
<P>
Rx is a faster implementation of the GNU regex functions.  It is
currently in a beta state, and we are not yet distributing it on tape.
For more information, contact Tom Lord,
<CODE>lord+@andrew.cmu.edu</CODE>.
<P>
<LI>
<B>JACAL</B>
<P>
Aubrey Jaffer has written JACAL, a symbolic mathematics system for the
simplification and manipulation of equations and single- and
multiple-valued algebraic expressions constructed of numbers, variables,
radicals, and algebraic functions, differential operators, and holonomic
functions.  In addition, vectors and matrices of the above objects are
included.
<P>
JACAL is written in Scheme.  An IEEE P1178 and R4RS compliant version of
Scheme ("SCM") written in C is available with JACAL.  SCM runs on
Amiga, Atari-ST, MS-DOS, NOS/VE, VMS, Unix, and similar systems.  SLIB
is a portable Scheme library used by JACAL.  Get JACAL, SLIB, and SCM
sources via anonymous FTP from either <CODE>nexus.yorku.ca</CODE> in
<TT>`/pub/scheme/new'</TT>, or <CODE>altdorf.ai.mit.edu</CODE> in
<TT>`/archive/scm'</TT>, or <CODE>prep.ai.mit.edu</CODE> in
<TT>`/pub/gnu/jacal'</TT>.
<P>
The FSF is not distributing JACAL on tape yet.  To receive an IBM PC
floppy disk with the source and executable files, send $99.00 to:
<P>
<PRE>
Aubrey Jaffer, 84 Pleasant Street, Wakefield, MA   01880   USA
</PRE>
<P>
<LI>
<CODE>make</CODE>
<P>
GNU <CODE>make</CODE> version 3.67 has just been released.  It now supports
the popular <SAMP>`+='</SAMP> syntax for appending more text to a variable's
definition.  <CODE>make</CODE> has come with a standard GNU <CODE>configure</CODE>
script since version 3.63.  GNU <CODE>make</CODE> complies fully with the
POSIX.2 standard, and also supports long options, parallel command
execution, flexible implicit pattern rules, conditional execution, and
powerful text manipulation functions.  For those with no vendor-supplied
<CODE>make</CODE> utility at all, GNU <CODE>make</CODE> now comes with a shell
script called <TT>`build.sh'</TT> to build <CODE>make</CODE> the first time,
before you have any <CODE>make</CODE> program to use.
<P>
<LI>
<B>Oleo</B>
<P>
Oleo is a spreadsheet program that can be run either as an X client or
using curses.  Support has recently been added both for <CODE>gnuplot</CODE>
and for generating embedded Postscript.  Oleo still needs documentation.
If you would like to write a Texinfo manual for Oleo, contact Tom Lord,
<CODE>lord+@andrew.cmu.edu</CODE>.  Please send bug reports regarding
Oleo to <CODE>bug-oleo@prep.ai.mit.edu</CODE>.  See "Contents of
Experimental Tape."
<P>
<LI>
<B>finger</B>
<P>
Originally, each host on the Internet consisted of a single, reasonably
powerful computer, capable of handling many users at the same time.
Typically, a <DFN>site</DFN> (a physical location of computer users) would
have only one or two computers, even if they had 20 or more people who
used them.  If a user at site A wanted to know about users logged on at
site B, a simple program could be invoked to query the host at site B
about the users who were logged on.
<P>
With the onset of more-power-per-person computing, the mainframe has
been set aside.  A modern computing facility usually consists of one
user per host, and many hosts per site.  This makes it a trial to find
out about logged-on users at another site, since you must query each
host to find out about the single user who is logged on.
<P>
GNU Finger is a simple and effective way around this problem, and serves
as a direct replacement for existing finger programs.  For sites with
many hosts, a single host may be designated as the finger <DFN>server</DFN>
host.  This host collects information about who is logged on to other
hosts at that site.  If a user at site A wants to know about users
logged on at site B, only the server host need be queried, instead of
each host at that site.  This is very convenient.  (See "Contents of
the Utilities Tape".)
<P>
<LI>
<B>Ghostscript</B>
<P>
The current version of Ghostscript is 2.6.  New features include the
ability to use the fonts provided by the platform on which Ghostscript
runs (X Window System and Microsoft Windows), resulting in much
better-looking screen displays; improved text file printing (like
enscript); a utility to extract the text from a PostScript document; a
much more reliable (and faster) Microsoft Windows implementation;
support for Microsoft C/C<TT>++</TT> 7.0; drivers for many new printers,
including the SPARCprinter, and for TIFF/F (fax) file format; many more
Postscript Level 2 facilities, including most of the color space
facilities (but not patterns), and the ability to switch between Level 1
and Level 2 dynamically.
<P>
Ghostscript accepts commands in Postscript and executes them by writing
directly to a printer, drawing on an X window, or writing to a file that
you can print later (or to a bitmap file that you can manipulate with
other graphics programs).  Tim Theisen,
<CODE>ghostview@cs.wisc.edu</CODE>, has created Ghostview, a previewer
for multi-page files that runs on top of Ghostscript.  Russell Lang,
<CODE>rjl@monu1.cc.monash.edu.au</CODE>, has created Ghostview for
Windows, a similar previewer that runs on Microsoft Windows.
<P>
Ghostscript includes a C-callable graphics library (for client programs
that do not want to deal with the Postscript language).  It also
supports IBM PCs and compatibles with EGA, VGA, or SuperVGA graphics
(but please do not ask the FSF staff any questions about this; we do not
use PCs).
<P>
The next planned Ghostscript release will be 3.0, available in the first
quarter of 1994.  It will implement the full PostScript Level 2
language.
<P>
<LI>
<B>Smalltalk</B>
<P>
GNU Smalltalk implements the traditional features of the Smalltalk
language, but not the graphics and window features.  Recently someone
implemented these and they will appear in a future release.
<P>
<LI>
<B><CODE>groff</CODE></B>
<P>
James Clark has completed <CODE>groff</CODE> (GNU <CODE>troff</CODE> and related
programs).  Written in C<TT>++</TT>, they can be compiled with GNU C<TT>++</TT>
Version 2.3 or later.
<P>
Bugs in <CODE>groff</CODE> will be fixed, but no major new developments are
currently planned.  However, <CODE>groff</CODE> users are encouraged to
continue to contribute enhancements.  Most needed are complete Texinfo
documentation, a <CODE>grap</CODE> emulation (a <CODE>pic</CODE> preprocessor for
typesetting graphs), a page-makeup postprocessor similar to <CODE>pm</CODE>
(see <CITE>Computing Systems</CITE>, Vol. 2, No. 2), and an ASCII output
class for <CODE>pic</CODE> so that <CODE>pic</CODE> can be integrated with Texinfo.
<P>
Thanks to all those who have contributed bug reports.
<P>
<LI>
<B>Texinfo 3</B>
<P>
The Texinfo 3 package includes an enhanced Texinfo mode for GNU Emacs,
new versions of the formatting utilities, and the second edition of the
<CITE>Texinfo Manual</CITE>.  This edition is more thorough and describes over
50 new commands.  Texinfo mode now includes commands for automatically
creating and updating nodes and menus, a tedious task when done by hand.
<CODE>makeinfo</CODE>, a standalone formatter, and <CODE>info</CODE>, a standalone
Info reader are included.  Both are written in C and are independent of
GNU Emacs.
<P>
<LI>
<B>GNU Chess</B>
<P>
GNU Chess is a program that plays chess with you.  The program is
written entirely in the C language and has been ported to the PC, the
Cray-2, and numerous other machines.  It has also been ported to other
operating systems, including Microsoft Windows and MS-DOS, though these
versions are not being supported by the maintainer.
<P>
GNU Chess implements many specialized features including the null move
heuristic, a hash table with aging, the history heuristic (another form
of the earlier killer heuristic), caching of static evaluations, a
sophisticated database which lets the program play the first several
moves in the game quickly, and so forth.
<P>
GNU Chess won the Uniform Platform event held in August 1992 in London,
England.  Nine programs competed, running on identical hardware.
<P>
GNU Chess is primarily supported by Stuart Cracraft on behalf of FSF.
<P>
<PRE>
Stuart Cracraft     <CODE>cracraft@ai.mit.edu</CODE> P.O. Box 2841
Laguna Hills, CA   USA     Phone: (714) 770--8532
</PRE>
<P>
<LI>
<B>Porting</B>
<P>
Although we do not yet have a complete GNU system, it is already
possible for you to begin porting it.  This is because the unfinished
part, the Hurd, is basically portable.  The parts of the system that
really need porting are Mach and the GNU C Library, which are already
available to port and use.
</UL>
<P>
<P>Go to the <A HREF="gnu_bulletin_16.html">previous</A>, <A HREF="gnu_bulletin_18.html">next</A> section.<P>
